interface FormItemProps {
  id?: number;
  /** 用于判断是`新增`还是`修改` */
  title?: string;
  achievementSupport: string;
  additionFiles: string;
  domain: string;
  keyPoints: string;
  keywords: string;
  keywordList?: any[];
  overAchievements: string;
  horizontalProjectIds: Array<number>;
  longitudinalProjectIds: Array<number>;
  otherObtainRewardIds: Array<number>;
  achievementTransformationIds: Array<number>;
  paperIds: Array<number>;
  patentIds: Array<number>;
  relyOnUnit: string;
  masterUser?: string;
  researchTeamId: number;
  scrAchievementsName: string;
  subject: string;
  achievementsType: string;
}

interface FormProps {
  formInline: FormItemProps;
  userList?: any[];
  selectOpt?: any;
}

interface AddAchievFormProps {
  formInline: {
    id: number;
    isIndex?: number;
    scrAchievementsIds?: Array<number>;
    horizontalProjectIds: Array<number>;
    longitudinalProjectIds: Array<number>;
    otherObtainRewardIds: Array<number>;
    achievementTransformationIds: Array<number>;
    paperIds: Array<number>;
    patentIds: Array<number>;
    achievementsType: string;
  };
  selectOpt?: any;
}

interface RoleFormItemProps {
  username: string;
  nickname: string;
  /** 角色列表 */
  roleOptions: any[];
  /** 选中的角色列表 */
  ids: Record<number, unknown>[];
}
interface RoleFormProps {
  formInline: RoleFormItemProps;
}

export type {
  AddAchievFormProps,
  FormItemProps,
  FormProps,
  RoleFormItemProps,
  RoleFormProps
};
